package MEsteban; 

public class SprintPlan {

/* Sprint */
	public Sprint CreaSprint(String SprintKey,String SprintId, String FechaInicio, String FechaFinal, String Estado, 
			String OrderId, String RestrospectiveID, String ReviewMeetingID, String MemberId) {
		
		Sprint Sprint = new Sprint();
		Sprint.setSprintId(SprintKey);
		Sprint.setSprintId(SprintId);
		Sprint.setFechaInicio(FechaInicio);
		Sprint.setFechaFinal(FechaFinal);
		Sprint.setEstado(Estado);
		Sprint.setOrderId(OrderId); 
		Sprint.setRestrospectiveID(RestrospectiveID); 
		Sprint.setReviewMeetingID(ReviewMeetingID);
		Sprint.setMemberId(MemberId);
		return Sprint;
	}

	public boolean EnviaSprint(Sprint Sprint, SprintRepository sprintrepository) {
		try {
			 
			sprintrepository.Sprint.put(Sprint.getSprintId(), Sprint);
			return true;

		} catch (Exception e) {
			return false;
		}
	}

	public boolean EliminaSprint(String SprintId,SprintRepository sprintrepository) {
		try {			
			if (sprintrepository.Sprint.get(SprintId).getEstado() == "F") {
				/* El Sprint se encuentra en estado FINAL */
				return false;
			} else {

				sprintrepository.Sprint.remove(SprintId);
				return true;
			}
		} catch (Exception e) {
			return false;
		}
	}
        
	     
	public boolean AsignarPrioridadSprint(Sprint Sprint,
			SprintRepository sprintrepository) {
		try {
			if (sprintrepository.Sprint.get(Sprint.getSprintId()).getEstado() == "F") {
				/*El Sprint se encuentra en estado FINAL*/
				return false;
			}else if (!sprintrepository.Order.containsKey(Sprint.getOrderId())) {
				System.out.println("El Orden de Prioridad Nro."
						+ Sprint.getOrderId() + " No Existe");
				return false;
			} else {
				sprintrepository.Sprint.put(Sprint.getSprintId(), Sprint);
				return true;
			}
		} catch (Exception e) {
			return false;
		}

	}
/* ASIGNAR ESTADO SPRINT
 * Parametros Sprint, Repositorio
 */
	public boolean AsignarEstadoSprint(Sprint Sprint,
			SprintRepository sprintrepository) {
		try {
			                     
			if (sprintrepository.Sprint.get(Sprint.getSprintId()).getEstado() == "F") {
				/*El Sprint se encuentra en estado FINAL*/
				return false;
			} else {
				sprintrepository.Sprint.put(Sprint.getSprintId(), Sprint);
				return true;
			}

		} catch (Exception e) {
			return false;
		}

	}
	public boolean AsignarTeam(Sprint Sprint,
			SprintRepository sprintrepository) {
		try {
			/* Verificar si el Team Existe */
			if (!sprintrepository.Team.containsKey(Sprint.getMemberId())) {
				System.out.println("El Miembro del Equipo : "
						+ Sprint.getMemberId() + " No Existe");
			} else {
				sprintrepository.Sprint.put(Sprint.getSprintId(), Sprint);
			}

			return true;
		} catch (Exception e) {
			return false;
		}

	}	
/* Team */
	     public Team CreaTeam(String MemberId,String MemberNombre) {
	    	 Team Team = new Team(); 
	 		Team.setMemberId(MemberId);
	 		Team.setMemberNombre(MemberNombre);
	 		return Team;
	 	}

	 	public boolean EnviaTeam(Team Team, SprintRepository sprintrepository) {
	 		try {
	 			
	 			sprintrepository.Team.put(Team.getMemberId(), Team);
	 			return true;

	 		} catch (Exception e) {
	 			return false;
	 		}
	 	}	 
	 	
	     public boolean EliminaTeam(String TeamId, SprintRepository sprintrepository)
         {                 
                 try
                 {
                	 /* Verificar si el Sprint ha sido alterado */
                	 
                	 sprintrepository.Team.remove(TeamId);
                	 return true;
                 }
                 catch(Exception e)
                 {
                	 return false;
                 }
                 
         }	 	
	     
/* Order */
	     public Order CreaOrder(String OrderId,String OrderDescripcion) {
	    	 Order Order = new Order(); 
	 		Order.setOrderId(OrderId);
	 		Order.setOrderDescripcion(OrderDescripcion);
	 		return Order;
	 	}

	 	public boolean EnviaOrder(Order Order, SprintRepository sprintrepository) {
	 		try {
	 			//System.out.println(Order.getOrderId() + "- " + Order.getOrderDescripcion() );	 			
	 			sprintrepository.Order.put(Order.getOrderId(), Order);
	 			return true;

	 		} catch (Exception e) {
	 			return false;
	 		}
	 	}		     

	     public boolean EliminaOrder(String OrderId, SprintRepository sprintrepository)
         {                 
                 try
                 {
                	 /* Verificar si el Sprint ha sido alterado */
                	 
                	 sprintrepository.Order.remove(OrderId);
                	 return true;
                 }
                 catch(Exception e)
                 {
                	 return false;
                 }
                 
         }	 	
 	 	
/* ReviewMeeting*/
		public ReviewMeeting CreaReviewMeeting(String ReviewMeetingID,
				String ReviewMeetingDesc,
				String SprintId,
				String FechaPresentacionDemo,				
				String Condiciones,
				String FechadeReunion,
				String TiempoReunion){
			ReviewMeeting ReviewMeeting = new ReviewMeeting();
			ReviewMeeting.setReviewMeetingID(ReviewMeetingID);
			ReviewMeeting.setSprintId(SprintId);
			ReviewMeeting.setReviewMeetingDesc(ReviewMeetingDesc);			
			ReviewMeeting.setFechaPresentacionDemo(FechaPresentacionDemo);
			ReviewMeeting.setCondiciones(Condiciones);
			ReviewMeeting.setFechadeReunion(FechadeReunion);
			ReviewMeeting.setTiempoReunion(TiempoReunion);
			return ReviewMeeting;
		 	}

		 	public boolean EnviaReviewMeeting(ReviewMeeting ReviewMeeting, SprintRepository sprintrepository) {
		 		try {
		 			//System.out.println(Order.getOrderId() + "- " + Order.getOrderDescripcion() );	 			
		 			sprintrepository.ReviewMeeting.put(ReviewMeeting.getReviewMeetingID(), ReviewMeeting);
		 			return true;

		 		} catch (Exception e) {
		 			
		 			return false;
		 		}
		 	}	

		     public boolean EliminaReviewMeeting(String ReviewMeetingId, SprintRepository sprintrepository)
	         {           
		    	 		    	 
	                 try
	                 {	                	  
	                	 /* Verificar si el Sprint ha sido alterado */	                	 
	         			if (sprintrepository.Sprint.get(ReviewMeetingId).getEstado() == "F") {
	        				/* El Sprint se encuentra en estado FINAL */
	        				return false;
	        			} else {	                	 
	                	 sprintrepository.ReviewMeeting.remove(ReviewMeetingId);
	        			}
	                	 return true;
	                 }
	                 catch(Exception e)
	                 {
	                	 return false;
	                 }
	                 
	         }	 	
		 			 	
/* Retrospective*/
			public Retrospective CreaRetrospective(String RestrospectiveID,
					String MemberID,
					String Comentarios,
					String SprintId,
					String Acuerdos,
					String FechadeReunion,
					String TiempoReunion){									
				Retrospective Retrospective = new Retrospective();
				Retrospective.setRestrospectiveID(RestrospectiveID);
				Retrospective.setMemberID(MemberID);
				Retrospective.setComentarios(Comentarios);
				Retrospective.setSprintId(SprintId);
				Retrospective.setAcuerdos(Acuerdos);
				Retrospective.setFechadeReunion(FechadeReunion);
				Retrospective.setTiempoReunion(TiempoReunion);
				return Retrospective;
			 	}

			 	public boolean EnviaRetrospective(Retrospective Retrospective, SprintRepository sprintrepository) {
			 		try {
			 			//System.out.println(Order.getOrderId() + "- " + Order.getOrderDescripcion() );	 			
			 			sprintrepository.Retrospective.put(Retrospective.getRestrospectiveID(), Retrospective);
			 			return true;

			 		} catch (Exception e) {
			 			
			 			return false;
			 		}
			 	}
			 	
			 	
}
